#!/usr/bin/env python3

import os
import subprocess
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('AyatanaAppIndicator3', '0.1')
from gi.repository import Gtk, GLib, AyatanaAppIndicator3

desktop = os.environ.get("XDG_CURRENT_DESKTOP", "")
is_wayland = os.environ.get("WAYLAND_DISPLAY") is not None

APPINDICATOR_ID = "simple-notifier"

def script1(_): subprocess.Popen(["/usr/share/simple-notifier/scripts/pswd-gui"])
def script2(_): subprocess.Popen(["/usr/share/simple-notifier/scripts/history-cli"])
def script3(_): subprocess.Popen(["/usr/share/simple-notifier/scripts/settings"])
def script4(_): subprocess.Popen(["/usr/share/simple-notifier/about/Simple Update Notifier"])


def build_menu():
    menu = Gtk.Menu()
    for label, callback in [
        ("📦️ Package Manager", script1),
        ("⏳️ History", script2),
        ("⚙️ Setting", script3),
        ("🛟️ About", script4)
    ]:
        item = Gtk.MenuItem.new_with_label(label)
        item.connect('activate', callback)
        menu.append(item)
    menu.show_all()
    return menu

indicator = AyatanaAppIndicator3.Indicator.new(
    APPINDICATOR_ID,
    "/usr/share/simple-notifier/icons/up2date32.png",
    AyatanaAppIndicator3.IndicatorCategory.APPLICATION_STATUS
)

indicator.set_status(AyatanaAppIndicator3.IndicatorStatus.ACTIVE)

GLib.idle_add(lambda: (indicator.set_menu(build_menu()), False))

Gtk.main()


